package com.yh.ldzl.service;

import java.util.List;
import java.util.Map;

import com.yh.ldzl.domain.QcIpqc;
import org.apache.ibatis.annotations.Param;

/**
 * 过程检验单Service接口
 * 
 * @author yanghuai
 * @date 2025-07-07
 */
public interface IQcIpqcService 
{
    /**
     * 查询过程检验单
     * 
     * @param ipqcId 过程检验单主键
     * @return 过程检验单
     */
    public QcIpqc selectQcIpqcByIpqcId(Long ipqcId);

    /**
     * 查询过程检验单列表
     * 
     * @param qcIpqc 过程检验单
     * @return 过程检验单集合
     */
    public List<QcIpqc> selectQcIpqcList(QcIpqc qcIpqc);

    /**
     * 新增过程检验单
     * 
     * @param qcIpqc 过程检验单
     * @return 结果
     */
    public int insertQcIpqc(QcIpqc qcIpqc);

    /**
     * 修改过程检验单
     * 
     * @param qcIpqc 过程检验单
     * @return 结果
     */
    public int updateQcIpqc(QcIpqc qcIpqc);

    /**
     * 批量删除过程检验单
     * 
     * @param ipqcIds 需要删除的过程检验单主键集合
     * @return 结果
     */
    public int deleteQcIpqcByIpqcIds(Long[] ipqcIds);

    /**
     * 删除过程检验单信息
     * 
     * @param ipqcId 过程检验单主键
     * @return 结果
     */
    public int deleteQcIpqcByIpqcId(Long ipqcId);
    /**
     * 校验过程检验单编码是否唯一
     *
     * @param ipqcCode 过程检验单编码
     */

    boolean selectQcIpqcCodeUnique(@Param("ipqcCode") String ipqcCode);
    /**
     * 校验过程检验单名称是否唯一
     *
     * @param ipqcName 过程检验单名称
     */
    boolean selectQcIpqcNameUnique( @Param("ipqcName")String ipqcName);

    /**
     * 根据工单id查询过程检验单
     *
     * @param workOrderId 工单id
     */
    public QcIpqc selectQcIpqcSourceDocId(Long workOrderId);
    /**
     * 查询工单下的产品信息
     *
     * @param work_order_id 工单id
     */
    public Map<String, Object> selectQcIpqcProductInfo( Long work_order_id);
}
